home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / internet / pppprj12.zip / README.DOC < prev    next >
Text File  |  1996-06-22  |  11KB  |  237 lines

  1. ┌───────────────────[ A Cerebrum Programming Production ]────────────────────┐
  2. │                                                                            │
  3. │                             PPP Project v1.0                               │
  4. │                        WWIV Network Packet Transport                       │
  5. │                       Freeware (c) 1996 by Frank Reid                      │
  6. │                                                                            │
  7. └────────────────────────────────────────────────────────────────────────────┘
  8.  
  9. I.  ACKNOWLEDGEMENTS
  10.  
  11. A.  The Beta team.
  12.  
  13.     First and foremost:  Thanks to the beta testers, particularly Perry
  14.     Wolf, Dawg and Twinkie, for their patience and endurance!  I'm proud
  15.     that the development team now includes several programming experts,
  16.     including Trader Jack from CellarSoft, Goose from Twilight Zone and
  17.     Hellfire of Linker and APEX fame.
  18.  
  19. B.  The PPP transport layer.
  20.  
  21.     I use (and have included) Merit Software's freeware EtherPPP module.
  22.     This emulates an ethernet class device to establish a PPP session
  23.     layer.  You can run nearly any TCP/IP or IPX application in such a
  24.     session.  PPP.EXE works fine here, but I understand others have less
  25.     success.  Try configuring the capture vector to something other than
  26.     the default (0x60).  If it still doesn't work, grab PPPDEMO.ZIP, a
  27.     far more advanced ethernet emulator, or any of several others which
  28.     abound.  (A Netscape search for "etherppp" or "wattcp" will turn up
  29.     a bunch of other packet drivers!)
  30.  
  31. C.  The TCP/IP sockets.
  32.  
  33.     The Waterloo TCP/IP sockets have found their way into more Internet
  34.     applications than any other library.  I made many modifications to
  35.     their code to have it working the way I wanted, but the code is
  36.     nonetheless theirs.
  37.  
  38. D.  The POP and SMTP routines.
  39.  
  40.     Walter Andrew Nolan did most of the work needed to communicate with
  41.     POP and SMTP hosts under the Waterloo sockets.  I built onto that
  42.     effort, and included some POP3-specific directives from RFC1939.  At
  43.     the most basic level, this program communicates in plain English to
  44.     the remote hosts -- really nothing fancy about it.
  45.  
  46. E.  The WWIV network routines.
  47.  
  48.     Naturally, a great deal of this code is drawn from WWIV source,
  49.     including the .INI routines and liberal use of the structures in
  50.     WWIV's NET.H.  I used Midnight Tree Bandit's NETECH34 v2.0 as a
  51.     reference document frequently.  (If you do any network programming,
  52.     this is a must!)
  53.  
  54. II.  INTRODUCTION
  55.  
  56. A.  Background.
  57.  
  58.     This project began in an attempt to fill a void.  The NGTrans
  59.     newsgroup module from WSS requires shell access with an Internet
  60.     Service Provider.  That's expensive and hard to find in these parts,
  61.     so I wanted to use my cheap ($12/mo) PPP account to retrieve and
  62.     import newsgroups.  The newsgroup project was nearly completed when
  63.     I learned Jim Nunn (former IceNET NC and a major WWIV-type network
  64.     server) was taking down his system.  I refocused my efforts on a
  65.     solution to move my network packets via the same PPP account in the
  66.     hope it would reduce my long distance bill.  It has!  I now move
  67.     mail on a half-dozen networks to/from Twinkie's St Louis Private
  68.     Mail Server!  You should, too!
  69.  
  70. B.  The future.
  71.  
  72.     I can't count the hours I've put into developing these routines.
  73.     That's a reflection of the complexity of talking real-time with
  74.     remote hosts, the extensive error-checking necessary to protect
  75.     volatile network data (and even more is needed) and my own lack of
  76.     formal programming training!  I'm sure I can't spend much more time
  77.     on this project, as my wife grows very impatient!  Therefore, I have
  78.     made the source code available to several others in the hope this
  79.     project will never die, but only get more robust.
  80.  
  81. III.  CONCEPT OF OPERATIONS
  82.  
  83. A.  System requirements.
  84.  
  85.     As you can see by the small size of the executables, this code is
  86.     highly optimized.  Memory requirements should be insigificant, if
  87.     you're running WWIV v4.24+ (with network shrink routines).  At the
  88.     moment, disk space is not checked before receiving packets (an easy
  89.     addition to a future release), so keep room!  In operation, the
  90.     program is transparent to WWIV's normal network routines.  As a
  91.     result, systems on any WWIV-type network can support Internet-based
  92.     packet transfers along with standard modem connections.  The
  93.     requirements to do this are:
  94.  
  95.     1) The program is properly installed and working!
  96.  
  97.     2) ADDRESS.NET, containing node number(s) and corresponding email
  98.        account(s) for Internet-based systems, exists in the appropriate
  99.        network directory.
  100.  
  101. B.  How it works.
  102.  
  103.     The BBSLIST/CONNECT and associated network files are standard WWIV.
  104.     When you force a callout (from WFC or DOS), the program checks to
  105.     see if an ADDRESS.NET exists in the network directory.  If not, the
  106.     program ends, and normal network routines are used.  If ADDRESS.NET
  107.     contains an Internet account for the callout node, the program takes
  108.     control.  Pending packets (S*.NET and Z*.NET) for anyone listed in
  109.     the ADDRESS.NET are packed in UUE format with a message header
  110.     containing the appropriate addressees.  These are placed into an
  111.     MQUEUE directory (pending transmission).  The original packets are
  112.     then moved to a SENT directory (with a filename of the UNIX time, in
  113.     hex).  A PPP session is established with your ISP, packets in MQUEUE
  114.     are sent via your defined sendmail host and packets are received
  115.     from your defined POP server.
  116.  
  117. C.  POP3 routines.
  118.  
  119.     The program can retrieve all packets from your POP3 server or just
  120.     those it identifies as network packets.  To determine whether email
  121.     should be retrieved, the first 25 lines of each message are viewed
  122.     by the program (using the POP3-specific "TOP" directive).  The lines
  123.     are scanned to see if they contain the words "begin 600" (a UUE
  124.     packet signature) with a file extension of NET (a net packet),
  125.     ZIP/ARJ/LZH (an archive) or GIF/JPG (a graphic file).  Email which
  126.     doesn't meet this criteria is left on the POP3 server for you to
  127.     read with your normal email program (Eudora, PMPop, Pegasus or
  128.     whatever).
  129.  
  130. D.  Cleaning up.
  131.  
  132.     Upon identifying one of the file types listed above, the program
  133.     retrieves the message into the TEMP directory defined for the
  134.     current WWIV instance.  Once all packets are received, the program
  135.     decodes the UUE files from TEMP and places them in either of two
  136.     places.  In the case of network packets, the output is placed in the
  137.     network directory and named sequentially to P1-nnn.NET to prevent
  138.     overwrites.  In the case of archives, graphics or regular email, the
  139.     messages are extracted and placed into the CHECKNET directory.  When
  140.     all files are received and processed, the program calls the normal
  141.     network routines to process the net packets.  Files sent to CHECKNET
  142.     can be viewed with any editor or external mail program.
  143.  
  144.  
  145. IV.  GETTING STARTED
  146.  
  147. A.  Find a network.
  148.  
  149.     Join PPPnet if you wish to evaluate the program more fully (and
  150.     safely!)  Fill out PPPNET.APP and mail it to me, and I'll respond
  151.     with a current network package.  When you're up and running on
  152.     PPPnet, you can "Linker" other networks you carry via the PPPnet
  153.     connection, as I do.  (Twinkie is a long-term, very stable multinet
  154.     server, and I expect several other servers will soon join!)  If
  155.     you're brave, and you'd rather set it up with an existing network
  156.     connection, have at it.  At present, the project supports Internet
  157.     transfers on a single network per system, as there is no foolproof
  158.     way to identify where a given packet belongs otherwise.  A future
  159.     revision will include support for multiple networks having Internet
  160.     delivery.
  161.  
  162. B.  Program installation.
  163.  
  164.     Change to your main BBS directory and type:
  165.  
  166.     REN NETWORK.EXE NETWORK0.EXE
  167.  
  168.     This renames WWIV's standard main network executable so it will not
  169.     be overwritten.  Do not proceed if you get an error.  Instead, find
  170.     out why and fix it.  After successfully doing so, extract these
  171.     files from the distribution archive into your BBS main directory:
  172.  
  173.     NETWORK.EXE  (the network executable replacement)
  174.     POP.EXE  (the POP3 and SMTP routines)
  175.     UU.EXE  (the UU encode/decode routines)
  176.     NET.INI  (the main configuration file)
  177.     DIAL.INI  (the PPP-specific dialing session configuration)
  178.  
  179. C.  Edit the INI files.
  180.  
  181.     Edit NET.INI and DIAL.INI (now in your main BBS directory) to match
  182.     your configuration and user information.  The files are commented to
  183.     help you do this.  DIAL.INI contains the sequence of commands you
  184.     need to log on to your ISP.  The script language is limited by Merit
  185.     Software's EtherPPP driver, and it's not very robust.  It should,
  186.     however, be adequate to allow you to navigate into a PPP session,
  187.     even through a shell account.
  188.  
  189. D. PAP/CHAP authentication.
  190.  
  191.     The EtherPPP has limited but adequate PAP support.  If your ISP uses
  192.     PAP to get your username and password upon connecting, extract the
  193.     file CONFIG.PPP from ETHERPPP.ZIP archive and place it in your BBS
  194.     main directory.  Edit the file to reflect your information.  If that
  195.     doesn't work, there are several other ethernet "shims" which work
  196.     fine with the Waterloo TCP sockets.  Try PPPDEMO.ZIP, a shareware
  197.     program which appears more configurable (but is untested here).
  198.  
  199. V.  FINAL NOTES
  200.  
  201. A.  Trusting your data.
  202.  
  203.     I don't trust Internet email as much as direct modem-to-modem
  204.     connections.  On a direct connection, you will at least know if
  205.     something ate up your net packet!  This is why sent packets are
  206.     stored for a user-defined time period in the SENT directory, and
  207.     they can be manually retransmitted by copying them back to the
  208.     network directory.  A likely future enhancement is an audit trail to
  209.     track sent/received packets and automagically retransmit them.
  210.  
  211. B.  WSS Products.
  212.  
  213.     This project is not intended to compete with WSS' NGTrans.  However,
  214.     the capability to import/export mail and newsgroups is certainly
  215.     there.  In fact, I have a working prototype for newsgroup retrieval,
  216.     but I need more time with it before it's stable enough to release.
  217.     If you'd like to donate to its development, my address is listed
  218.     below.  I'll spend as much time as possible with it if you do.
  219.  
  220.                 Frank Reid
  221.                 Eagle's Dare
  222.                 9350 Harvest Way
  223.                 Laurel, MD 20723
  224.  
  225. C.  About Cerebrum.
  226.  
  227.     Cerebrum is a group of loosely-affiliated but highly-talented
  228.     programmers working to improve the availability and quality of
  229.     source code modifications and utilities for other WWIV sysops.  Look
  230.     for many other Cerebrum products on a WWIV support BBS near you, and
  231.     please contribute to the future of WWIV by registering the Cerebrum
  232.     products you do use!  If you are interested in hosting Cerebrum
  233.     products on your own BBS as a Cerebrum Support Site, contact Dawg
  234.     @2121.WWIVNET for an application.
  235.  
  236.  
  237.